Electronic messages have become an indispensable part of modern communication. Electronic messages such as email or instant messages are popular because they are fast, easy, and have essentially no incremental cost. Unfortunately, these advantages of electronic messages are also exploited by marketers who regularly send out unsolicited junk messages. The junk messages are referred to as “spam”, and spam senders are referred to as “spammers”. Spam messages are a nuisance to users. They clog email inboxes, waste system resources, often promote distasteful subjects, and sometimes sponsor outright scams.
There are a number of commonly used techniques for classifying messages and identifying spam, such as black listing the sender addresses of known spammers. However, these techniques sometimes misclassify spam messages. For example, a system that performs black listing may be configured to identify any messages with certain sender addresses, such as “john@getrichquick.com” as spam. However, spammers can insert a false sender address into a spam message, enabling the spam message to pass through the black listing filter. Another problem is that spammers may spoof a genuine sender address or domain that has been whitelisted by a user. It would be useful to have a technique that more accurately classifies messages. Such a technique would not be effective if spammers could easily alter parts of the spam messages they send so that the messages are identified as non-spam. Thus, it would also be desirable if non-spam messages identified by such a technique are not easily spoofed or if such spoofing could be detected.